A typical home audio-visual equipment setup includes a number of components. For example, a radio receiver, a CD player, a pair of speakers, a television, a VCR, a tape deck, and alike. Each of these components is connected to each other via a set of wires. One component is usually the central component of the home audiovisual system. This is usually the radio receiver, or the tuner. The tuner has a number of specific inputs for coupling the other components. The tuner has a corresponding number of control buttons or control switches which provide a limited degree of controllability and inter-operability for the components. A user controls the home audiovisual system by manipulating the buttons and switches on the front of the tuner or, alternatively, manipulating buttons on the hand-held remote control unit. These actions in turn control the operation of the various external devices coupled to the tuner.
This conventional home audiovisual system paradigm has become quite popular. As the number of new consumer electronics devices for the home audiovisual system has grown and as the sophistication and capabilities of these devices have increased, a number of problems with the conventional paradigm have emerged. One such problem is incompatibility between devices in the home audiovisual system. Consumer electronic devices from one manufacturer often couple to an audiovisual system in a different manner than similar devices from another manufacturer.
To solve these problems, interoperability protocols have been developed to define standards for interfacing devices over a serial network bus. One such standard is the AV/C standard. The AV/C protocol defines the hardware interfaces, software based structures, and software based functions required to ensure interoperability between networked consumer electronic devices. AV/C specifies the manner in which devices present their respective functionality to other devices on the network by defining how functionality and content is represented, how content is modified and updated, how devices interact to access each other's functionality and content, etc. Thus, AV/C protocols resolve many of the interoperability problems and control problems of home audio video systems.
However, there is a problem with interoperability between multiple devices on the network bus and the access of one or more shared resources on the network bus. While the AV/C protocol defines satisfactory methods for inter-access between devices on the network bus, there is no satisfactory solution for handling multiple requests from devices to access a shared resource. For example, in a case where one such shared resource is an audio video hard disk drive storing various video segments, one device can be writing a contents directory to the hard disk while another device is attempting to read another content directory from the hard disk for display on a monitor. If the two operations occur before one or the other is complete, in other words, if the two operations overlap, the network may fail or "crash", data on the hard disk can be corrupted, the hard disk can be left in some unusable state, or the like.
One prior art solution to the problem of concurrent access to a shared resource involves the use of resource locking mechanisms. For example, when a shared resource is accessed by a first device, the resource is locked such that it cannot be accessed by a second device. Once the access of the first device is complete, the resource is unlocked. The second device subsequently reattempts its access with the unlocked resource. This solution has undesirable consequences. The locking of shared resources leads to the problem of properly managing the locking mechanism. If a lock is inadvertently left in place, or if a lock is removed prematurely, the network may crash, data on the shared resource can be corrupted, the shared resource can be left in some unusable state, or the like.
While the emergence of networking and interface technology (e.g., IEEE 1394 serial communication bus and the wide spread adoption of digital systems) offers prospects for correcting the shared resource accessibility problem, there is still no coherent, extensible architecture for the efficient management of access to shared resources within the AV/C protocol frame work. There is no AV/C based system for ensuring reliable access to shared resources. As IEEE 1394 and other types of serial bus technology spreads across product lines, it is necessary to define logical models and command sets for accessing and updating content stored on shared network devices.